package com.neusoft.bizcore.notice.system.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.neusoft.bizcore.auth.common.bean.UserBean;
import com.neusoft.bizcore.notice.system.dto.SystemNoticeDTO;
import com.neusoft.bizcore.web.support.Searchable;

public interface SystemNoticeService {

    List<SystemNoticeDTO> findAll(Searchable searchable);

    Page<SystemNoticeDTO> search(Pageable pageable, Searchable searchable, final UserBean user);

    void create(SystemNoticeDTO dto);

    SystemNoticeDTO update(Long id, SystemNoticeDTO dto);

    SystemNoticeDTO details(Long id);

    Integer getCurrentUnRead(UserBean user);

    void delete(Long id);

    List<String> findDistinctNoticeType();

    void notifyPage(String path, String message);

    void batchRead(List<Long> ids);

    void batchDelete(List<Long> ids);
}
